import numpy as np
import cv2 as cv
'''
cv.getTickCount，cv.getTickFrequency
cv.getTickCount返回时钟周期数目
cv.getTickFrequency返回每秒周期数
'''
#示例对中位数过滤用奇数大小为5到49的内核
img = cv.imread('1.png')
e1 = cv.getTickCount()
for i in range(5,49,2):
    img = cv.medianBlur(img,i)
e2 = cv.getTickCount()
t = (e2-e1)/cv.getTickFrequency()
print(t)  #0.0346383秒


#time.time（）函数同样可以
'''
许多OpenCV功能已使用SSE2，AVX等进行了优化。它还包含未优化的代码。
因此，如果我们的系统支持这些功能，则应该利用它们（几乎所有现代处理器都支持它们）。
默认在编译时启用。因此，如果已启用，OpenCV将运行优化的代码，否则将运行未优化的代码。
可以使用cv.useOptimized（）来检查是否启用/禁用它，并使用cv.setUseOptimized（）来启用/禁用它
'''
print(cv.useOptimized())   #True

cv.setUseOptimized(False)
img = cv.imread('1.png')
e1 = cv.getTickCount()
for i in range(5,49,2):
    img = cv.medianBlur(img,i)
e2 = cv.getTickCount()
t = (e2-e1)/cv.getTickFrequency()
print(t)  #0.0418326

'''
Python标量运算比Numpy标量运算快。
因此，对于包含一两个元素的运算，Python标量比Numpy数组好。
当数组的大小稍大时，Numpy具有优势。
比较同一图像的cv.countNonZero（）和np.count_nonzero（）性能。
通常，OpenCV函数比Numpy函数要快
'''
